home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
090
/
forlib1.arc
/
STRING.ASM
< prev
next >
Wrap
Assembly Source File
|
1986-01-15
|
1KB
|
64 lines
DATA SEGMENT PUBLIC 'DATA'
TITLE__ DB 'TITLE: STRING MANIPULATION FOR MS FORTRAN'
COPY_R DB ' (C) John R. Petrocelli'
DB ' Schenectady,NY '
DB ' 01/13/86 '
SOURCE_START DB ?
SOURCE_COUNT DB ?
TARGET_START DB ?
TARGET_COUNT DB ?
MISMATCH_MSG DB ' ** SUBSTR SOURCE/TARGET LENGTH MISMATCH$'
DATA ENDS
DGROUP GROUP DATA
CODE SEGMENT 'CODE'
ASSUME CS:CODE,DS:DGROUP,SS:DGROUP
PUBLIC SUBSTR
SUBSTR PROC FAR
PUSH BP
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DS
MOV BP,SP
LES BX,DWORD PTR[BP+16]
MOV AL,[BX]
LES BX,DWORD PTR[BP+20]
MOV BL,[BX]
MOV SOURCE_START,BL
SUB AL,BL
ADD AL,01
MOV SOURCE_COUNT,AL
LES BX,DWORD PTR[BP+28]
MOV AL,[BX]
LES BX,DWORD PTR[BP+32]
MOV BL,[BX]
MOV TARGET_START,BL
SUB AL,BL
ADD AL,01
MOV TARGET_COUNT,AL
CMP SOURCE_COUNT,AL
JNZ MISMATCH
MOV CH,00
MOV CL,TARGET_COUNT
LES SI,DWORD PTR[BP+24]
LDS DI,DWORD PTR[BP+36]
CLD
; REP MOVS [DI],[SI]
REP MOVSB
QUIT: POP DS
POP DX
POP CX
POP BX
POP AX
POP BP
RET 24
MISMATCH:
LEA DX,MISMATCH_MSG
MOV AX,0900H
INT 21H
JMP QUIT
SUBSTR ENDP
CODE ENDS
END